|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Data; 00030 using System.Configuration; 00031 using System.Collections; 00032 using System.Web; 00033 using System.Web.Security; 00034 using System.Web.UI; 00035 using System.Web.UI.WebControls; 00036 using System.Web.UI.WebControls.WebParts; 00037 using System.Web.UI.HtmlControls; 00038 00039 using RAIS.Common.UserManagement; 00040 using RAIS.ApplicationLogicLayer; 00041 00042 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>; 00043 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>; 00044 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>; 00045 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>; 00046 00047 namespace RAIS.UI.SpecificMasks 00048 { 00052 public partial class AddEditUsers : System.Web.UI.Page 00053 { 00057 enum AddEditUsers_PageMode 00058 { 00059 viewUser, 00060 addUser, 00061 editUser 00062 }; 00063 protected void Page_PreLoad(object sender, EventArgs e) 00064 { 00065 RAIS.UI.Common.PageManagement.TrimTextBoxValues(this); 00066 } 00067 #region Event handlers 00068 00074 protected void Page_Load(object sender, EventArgs e) 00075 { 00076 this.Response.Redirect("AddEditUsers_New.aspx"); 00077 00078 if (this.CurrentUser == null) 00079 UI.Common.AccessManagement.SignOut(this); 00080 00081 this.LBLresult.Text = ""; 00082 if (!this.IsPostBack) 00083 { 00084 this.BTNdelete.Attributes.Add("onclick", string.Format("javascript: return confirm('{0}');", RAIS.Common.Messages.DELETE_QUESTION_USER.Replace("'", "\\'"))); 00085 this.LBLusername.Text = this.CurrentUser.Name; 00086 00087 UI.Common.UserManagement.InitializeUsersList(this.DDLselecteduser); 00088 UI.Common.UserManagement.InitializeUserTypesList(this.DDLaputype); 00089 UI.Common.UserManagement.InitializeDataRolesList(this.DDLeuselectdatarole); 00090 UI.Common.UserManagement.InitializeFacilitiesList(this.DDLeuselectfacility); 00091 //UI.Common.UserManagement.InitializeFunctionalRolesList(this.DDLeufunctionalrole); 00092 00093 UI.Common.PageManagement.InitializePage(this, this.TreeView1); 00094 // this.LBTNmessagebox.Visible = !(this.CurrentUser.FunctionalRole.Type == FunctionRole.FunctionRoleType.Guest); 00095 00096 this.CurrentAddEditUsers_PageMode = AddEditUsers_PageMode.viewUser; 00097 00098 this.ShowUser(this.SelectedUser); 00099 } 00100 //this.SetMaskLayout(this.TXTeuusername.Text); 00101 } 00108 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 00109 { 00110 UI.Common.UserManagement.ProcessTreeViewOnRedirect(this.TreeView1); 00111 } 00118 protected void LBTNlogout_Click(object sender, EventArgs e) 00119 { 00120 UI.Common.AccessManagement.SignOut(this); 00121 } 00128 protected void BTNcreateuser_Click(object sender, EventArgs e) 00129 { 00130 string returnMessage = ""; 00131 if (string.IsNullOrEmpty(this.TXTeuusername.Text)) 00132 { 00133 returnMessage = RAIS.Common.Messages.USER_NAME_EMPTY; 00134 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, false); 00135 } 00136 else 00137 if (!this.CreateNewTemporalUser()) 00138 { 00139 UserData user = ApplicationLogicLayer.UserManagement.GetUserData(this.TXTeuusername.Text); 00140 if (user.Locked) 00141 this.RecoverLockedUser(user); 00142 } 00143 } 00150 protected void BTNdelete_Click(object sender, EventArgs e) 00151 { 00152 string returnMessage = string.Empty; 00153 00154 UserData userData = this.SelectedUser; 00155 //userData.Locked = true; 00156 userData.Status = UserData.UserStatus.Locked; 00157 00158 bool success = UserManagement.ModifyUser(userData, ref returnMessage); 00159 if (success) 00160 { 00161 UI.Common.UserManagement.InitializeUsersList(this.DDLselecteduser); 00162 ShowUser(this.SelectedUser); 00163 } 00164 00165 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00166 } 00167 00174 protected void DDLselecteduser_SelectedIndexChanged(object sender, EventArgs e) 00175 { 00176 ShowUser(this.SelectedUser); 00177 this.EnableDisableControls(); 00178 } 00185 protected void RBselectdatarole_CheckedChanged(object sender, EventArgs e) 00186 { 00187 if (this.RBselectdatarole.Checked) 00188 { 00189 this.DDLeuselectdatarole.Enabled = true; 00190 this.DDLeuselectfacility.Enabled = false; 00191 } 00192 else 00193 { 00194 this.DDLeuselectdatarole.Enabled = false; 00195 this.DDLeuselectfacility.Enabled = true; 00196 } 00197 } 00204 protected void RBeuselectfacility_CheckedChanged(object sender, EventArgs e) 00205 { 00206 if (this.RBeuselectfacility.Checked) 00207 { 00208 this.DDLeuselectdatarole.Enabled = false; 00209 this.DDLeuselectfacility.Enabled = true; 00210 } 00211 else 00212 { 00213 this.DDLeuselectdatarole.Enabled = true; 00214 this.DDLeuselectfacility.Enabled = false; 00215 } 00216 } 00223 protected void BTNaddUser_Click(object sender, EventArgs e) 00224 { 00225 string actionMessage = ""; 00226 bool success = this.ValidateData(ref actionMessage); 00227 if (success) 00228 { 00229 UserData userData = this.GetUserDataFromMask(null); 00230 success = UserManagement.AddUser(userData, ref actionMessage); 00231 if (success) 00232 { 00233 UI.Common.UserManagement.InitializeUsersList(this.DDLselecteduser); 00234 this.DDLselecteduser.SelectedValue = userData.Login; 00235 this.ShowUser(this.SelectedUser); 00236 this.CurrentAddEditUsers_PageMode = AddEditUsers_PageMode.viewUser; 00237 this.TXTeuusername.Text = ""; 00238 } 00239 } 00240 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage( this.LBLresult, 00241 actionMessage, 00242 success); 00243 } 00250 protected void BTNedit_Click(object sender, EventArgs e) 00251 { 00252 this.CurrentAddEditUsers_PageMode = AddEditUsers_PageMode.editUser; 00253 00254 } 00261 protected void BTNsaveChanges_Click(object sender, EventArgs e) 00262 { 00263 string actionMessage = ""; 00264 bool success = this.ValidateData(ref actionMessage); 00265 if (success) 00266 { 00267 UserData userData = this.SelectedUser; 00268 userData = this.GetUserDataFromMask(userData); 00269 00270 success = UserManagement.ModifyUser(userData, ref actionMessage); 00271 00272 if (success) 00273 this.CurrentAddEditUsers_PageMode = AddEditUsers_PageMode.viewUser; 00274 } 00275 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, 00276 actionMessage, 00277 success); 00278 } 00285 protected void BTNdiscard_Click(object sender, EventArgs e) 00286 { 00287 this.ShowUser(this.SelectedUser); 00288 this.CurrentAddEditUsers_PageMode = AddEditUsers_PageMode.viewUser; 00289 } 00290 00291 protected void DDLaputype_SelectedIndexChanged(object sender, EventArgs e) 00292 { 00293 UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType); 00294 } 00295 #endregion 00296 #region Private helper methods 00297 00303 void ShowUser(UserData user) 00304 { 00305 this.DDLaputype.SelectedValue = user.TypeText; 00306 UI.Common.UserManagement.InitializeFunctionalRolesListByUserType(this.DDLeufunctionalrole, this.SelectedUserType); 00307 ListItem listItem = this.DDLeufunctionalrole.Items.FindByText(user.FunctionalRole.Name); 00308 if (listItem != null) 00309 this.DDLeufunctionalrole.SelectedValue = user.FunctionalRole.Name; 00310 00311 if (user.DataRoleSpecified) 00312 { 00313 this.DDLeuselectdatarole.SelectedValue = user.DataRole.Name; 00314 this.DDLeuselectfacility.Enabled = false; 00315 this.DDLeuselectdatarole.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00316 } 00317 else 00318 { 00319 if (user.FacilitySpecified) 00320 { 00321 this.DDLeuselectfacility.SelectedValue = user.Facility.Name; 00322 this.DDLeuselectfacility.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00323 this.DDLeuselectdatarole.Enabled = false; 00324 } 00325 } 00326 00327 this.TXTeupassword.Text = user.Password; 00328 this.TXTconfirmpassword.Text = user.Password; 00329 00330 this.TXTeucompletename.Text = user.CompleteName; 00331 this.TXTeuemailaddress.Text = user.Email; 00332 00333 this.RBeuselectfacility.Checked = user.FacilitySpecified; 00334 this.RBselectdatarole.Checked = user.DataRoleSpecified; 00335 } 00339 void EnableDisableControls() 00340 { 00341 this.BTNaddUser.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.addUser; 00342 this.BTNsaveChanges.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.editUser; 00343 this.BTNedit.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.viewUser; 00344 this.BTNdiscard.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00345 00346 this.BTNcreateuser.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.viewUser; 00347 this.BTNdelete.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.viewUser; 00348 00349 this.TXTeuusername.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.viewUser; 00350 00351 this.LBLselecteduser.Visible = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.addUser; 00352 this.BTNdelete.Visible = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.addUser; 00353 this.DDLselecteduser.Visible = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.addUser; 00354 this.DDLselecteduser.Enabled = this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.viewUser; 00355 00356 this.DDLaputype.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00357 this.DDLeufunctionalrole.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00358 00359 this.DDLeuselectdatarole.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser && this.SelectedUser.DataRoleSpecified; 00360 this.DDLeuselectfacility.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser && this.SelectedUser.FacilitySpecified; 00361 00362 this.TXTeucompletename.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00363 this.TXTeuemailaddress.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00364 00365 this.TXTeupassword.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00366 this.TXTconfirmpassword.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00367 00368 this.RBeuselectfacility.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00369 this.RBselectdatarole.Enabled = this.CurrentAddEditUsers_PageMode != AddEditUsers_PageMode.viewUser; 00370 00371 UI.Common.UserManagement.EnableCommonControls(this, this.CurrentAddEditUsers_PageMode == AddEditUsers_PageMode.viewUser); 00372 00373 this.LBLadmin.ForeColor = RAIS.UI.Common.Constants.COLOR_OF_MENU_BAR_TEXT_HIGHLIGHT; 00374 } 00381 bool ValidateData(ref string returnMessage) 00382 { 00383 if (!this.ValidateFunctionRole(ref returnMessage)) 00384 return false; 00385 00386 return this.ValidatePassword(ref returnMessage); 00387 } 00394 bool ValidatePassword(ref string returnMessage) 00395 { 00396 if (this.TXTeupassword.Text.Length != 0) 00397 {//there was intention to change or to set the password 00398 if (this.TXTeupassword.Text == this.TXTconfirmpassword.Text) 00399 return true; 00400 else 00401 { 00402 returnMessage = RAIS.Common.Messages.PASSWORD_MISMATCH; 00403 return false; 00404 } 00405 } 00406 else 00407 return true; 00408 } 00415 bool ValidateFunctionRole(ref string returnMessage) 00416 { 00417 if (this.SelectedFunctionRole == null) 00418 { 00419 returnMessage = RAIS.Common.Messages.FUNCTION_ROLE_IS_MANDATORY; 00420 return false; 00421 } 00422 else 00423 return true; 00424 } 00433 UserData GetUserDataFromMask(UserData userData) 00434 { 00435 if( userData == null ) 00436 userData = new UserData(); 00437 00438 switch( this.CurrentAddEditUsers_PageMode ) 00439 { 00440 case AddEditUsers_PageMode.addUser: userData.Login = this.TXTeuusername.Text; break; 00441 case AddEditUsers_PageMode.editUser: userData.Login = this.DDLselecteduser.SelectedValue; break; 00442 } 00443 00444 userData.TypeText = this.DDLaputype.SelectedValue; 00445 if( this.TXTeupassword.Text.Length != 0 ) //blank password is not allowed 00446 userData.Password = this.TXTeupassword.Text; 00447 00448 userData.CompleteName = this.TXTeucompletename.Text; 00449 userData.Email = this.TXTeuemailaddress.Text; 00450 00451 if(this.RBeuselectfacility.Checked) 00452 { 00453 userData.DataRoleType = (int)UserData.DataRoleIndication.Facility; 00454 userData.Facility = this.SelectedFacility; 00455 } 00456 else 00457 if(this.RBselectdatarole.Checked) 00458 { 00459 userData.DataRoleType = (int)UserData.DataRoleIndication.DataRole; 00460 userData.DataRole = this.SelectedDataRole; 00461 } 00462 00463 userData.FunctionalRole = this.SelectedFunctionRole; 00464 00465 return userData; 00466 } 00471 void RecoverLockedUser(UserData user) 00472 { 00473 string returnMessage = ""; 00474 //user.Locked = false; 00475 user.Status = UserData.UserStatus.Active; 00476 bool success = ApplicationLogicLayer.UserManagement.ModifyUser(user, ref returnMessage); 00477 if (success) 00478 { 00479 UI.Common.UserManagement.InitializeUsersList(this.DDLselecteduser); 00480 this.DDLselecteduser.SelectedValue = user.Login; 00481 ShowUser(this.SelectedUser); 00482 this.TXTeuusername.Text = ""; 00483 returnMessage = RAIS.Common.Messages.RESTORED_LOCKED_USER; 00484 } 00485 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00486 } 00491 bool CreateNewTemporalUser() 00492 { 00493 string returnMessage = ""; 00494 bool success = !ApplicationLogicLayer.UserManagement.UserExists(this.TXTeuusername.Text, ref returnMessage); 00495 00496 if (success) 00497 { 00498 this.CurrentAddEditUsers_PageMode = AddEditUsers_PageMode.addUser; 00499 this.TXTeupassword.Text = ""; 00500 this.TXTconfirmpassword.Text = ""; 00501 this.TXTeucompletename.Text = ""; 00502 this.TXTeuemailaddress.Text = ""; 00503 } 00504 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, returnMessage, success); 00505 return success; 00506 } 00507 #endregion 00508 #region Properties 00509 00512 private UserData SelectedUser 00513 { 00514 get 00515 { 00516 try 00517 { 00518 UserData userData = ApplicationLogicLayer.UserManagement.GetUserData(this.DDLselecteduser.SelectedValue); 00519 return userData; 00520 } 00521 catch(Exception) 00522 { 00523 return null; 00524 } 00525 } 00526 } 00530 private FunctionRole SelectedFunctionRole 00531 { 00532 get 00533 { 00534 FunctionRoles functionRoles = (FunctionRoles)this.Session[RAIS.UI.Common.Constants.FUNCTION_ROLES_TAG]; 00535 if (functionRoles != null && functionRoles.ContainsKey(this.DDLeufunctionalrole.SelectedValue)) 00536 return functionRoles[this.DDLeufunctionalrole.SelectedValue]; 00537 else 00538 return null; 00539 } 00540 } 00544 private DataRole SelectedDataRole 00545 { 00546 get 00547 { 00548 DataRoles dataRoles = (DataRoles)this.Session[UI.Common.Constants.DATA_ROLES_TAG]; 00549 if (dataRoles != null) 00550 return dataRoles[this.DDLeuselectdatarole.SelectedValue]; 00551 else 00552 return null; 00553 } 00554 } 00558 private Facility SelectedFacility 00559 { 00560 get 00561 { 00562 Facilities facilities = RAIS.ApplicationLogicLayer.UserManagement.Facilities; 00563 if (facilities != null) 00564 return facilities[this.DDLeuselectfacility.SelectedValue]; 00565 else 00566 return null; 00567 } 00568 } 00572 private AddEditUsers_PageMode CurrentAddEditUsers_PageMode 00573 { 00574 get 00575 { 00576 if (this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG] != null) 00577 { 00578 return (AddEditUsers_PageMode)this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG]; 00579 } 00580 else 00581 return AddEditUsers_PageMode.viewUser; 00582 } 00583 set 00584 { 00585 string message; 00586 switch (value) 00587 { 00588 case AddEditUsers_PageMode.addUser: message = RAIS.Common.Messages.ADDING_NEW_USER; break; 00589 case AddEditUsers_PageMode.editUser: message = RAIS.Common.Messages.EDITTING_EXISTING_USER; break; 00590 default: message = ""; break; 00591 } 00592 RAIS.UI.Common.MessageDisplay.DisplayReturnMessage(this.LBLresult, message, true); 00593 this.Session[UI.Common.Constants.ADD_EDIT_USER_PAGE_MODE_TAG] = value; 00594 this.EnableDisableControls(); 00595 } 00596 } 00600 private UserTypeData SelectedUserType 00601 { 00602 get 00603 { 00604 UserTypes userTypes = RAIS.ApplicationLogicLayer.UserManagement.UserTypes; 00605 if (userTypes != null) 00606 return userTypes[this.DDLaputype.SelectedValue]; 00607 else 00608 return null; 00609 } 00610 } 00614 protected UserData CurrentUser 00615 { 00616 get { return (UserData)this.Session[UI.Common.Constants.CURRENT_USER_TAG]; } 00617 } 00618 #endregion 00619 } 00620 }